package com.flyco.modules.pms.service.impl;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.flyco.modules.pms.entity.PmsProductMinimumQuantity;
import com.flyco.modules.pms.mapper.PmsProductMinimumQuantityMapper;
import com.flyco.modules.pms.service.IPmsProductMinimumQuantityService;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.stereotype.Service;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;

import java.util.List;

/**
 * @Description: 起订配置表
 * @Author: flyco
 * @Date: 2024-04-08
 * @Version: V1.0
 */
@Service
public class PmsProductMinimumQuantityServiceImpl extends ServiceImpl<PmsProductMinimumQuantityMapper, PmsProductMinimumQuantity> implements IPmsProductMinimumQuantityService {

    //根据商品id获取商品的起订配置列表
    @Override
    public List<PmsProductMinimumQuantity> getByProductId(Long productId) {
        LambdaQueryWrapper<PmsProductMinimumQuantity> wrapper = new LambdaQueryWrapper<>();
        wrapper.eq(PmsProductMinimumQuantity::getProductId, productId);

        return list(wrapper);
    }

    //根据商品和公司查找记录，在添加时需要判断，一个公司下面，一个产品只能存在一条记录
    @Override
    public PmsProductMinimumQuantity getByProductIdAndCompanyCode(Long productId, String companyCode) {
        LambdaQueryWrapper<PmsProductMinimumQuantity> wrapper = new LambdaQueryWrapper<>();
        wrapper.eq(PmsProductMinimumQuantity::getProductId, productId)
                .eq(PmsProductMinimumQuantity::getCompanyCode, companyCode);

        List<PmsProductMinimumQuantity> list = list(wrapper);
        if (CollectionUtils.isEmpty(list)) {
            return null;
        }
        return list.get(0);
    }
}
